package com.ruoyi.service.production.impl;

import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.domain.production.MesProductionPlan;
import com.ruoyi.mapper.production.MesProductionPlanMapper;
import com.ruoyi.service.production.IMesProductionPlanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 生产计划Service业务层处理
 * 
 * @author ruoyi
 */
@Service
public class MesProductionPlanServiceImpl implements IMesProductionPlanService {
    @Autowired
    private MesProductionPlanMapper mesProductionPlanMapper;

    /**
     * 查询生产计划
     * 
     * @param planId 生产计划主键
     * @return 生产计划
     */
    @Override
    public MesProductionPlan selectMesProductionPlanByPlanId(Long planId) {
        return mesProductionPlanMapper.selectMesProductionPlanByPlanId(planId);
    }

    /**
     * 查询生产计划列表
     * 
     * @param mesProductionPlan 生产计划
     * @return 生产计划
     */
    @Override
    public List<MesProductionPlan> selectMesProductionPlanList(MesProductionPlan mesProductionPlan) {
        return mesProductionPlanMapper.selectMesProductionPlanList(mesProductionPlan);
    }

    /**
     * 校验计划编号是否唯一
     * 
     * @param planCode 计划编号
     * @return 结果
     */
    @Override
    public boolean checkPlanCodeUnique(String planCode, Long planId) {
        if (StringUtils.isEmpty(planCode)) {
            return false;
        }
        MesProductionPlan plan = mesProductionPlanMapper.checkPlanCodeUnique(planCode, planId);
        return plan == null;
    }

    /**
     * 新增生产计划
     * 
     * @param mesProductionPlan 生产计划
     * @return 结果
     */
    @Override
    public int insertMesProductionPlan(MesProductionPlan mesProductionPlan) {
        return mesProductionPlanMapper.insertMesProductionPlan(mesProductionPlan);
    }

    /**
     * 修改生产计划
     * 
     * @param mesProductionPlan 生产计划
     * @return 结果
     */
    @Override
    public int updateMesProductionPlan(MesProductionPlan mesProductionPlan) {
        return mesProductionPlanMapper.updateMesProductionPlan(mesProductionPlan);
    }

    /**
     * 批量删除生产计划
     * 
     * @param planIds 需要删除的生产计划主键
     * @return 结果
     */
    @Override
    public int deleteMesProductionPlanByPlanIds(Long[] planIds) {
        return mesProductionPlanMapper.deleteMesProductionPlanByPlanIds(planIds);
    }

    /**
     * 删除生产计划信息
     * 
     * @param planId 生产计划主键
     * @return 结果
     */
    @Override
    public int deleteMesProductionPlanByPlanId(Long planId) {
        return mesProductionPlanMapper.deleteMesProductionPlanByPlanId(planId);
    }
}